//
//  ZKPopMenuView.swift
//  Swift-app开发基础架构
//
//  Created by pro on 2017/9/1.
//  Copyright © 2017年 com.itboye. All rights reserved.
//

import UIKit

class KZPopMenuView: UIView, UITableViewDataSource, UITableViewDelegate {
    
    // MARK: 数据
    // 数据，是一个字典，键名是标题，值是一个可选字符串，用来传图片的名字
    var items: Dictionary<String, String> = Dictionary.init() {
        willSet {
            self.table.reloadData()
        }
    }
    // 最多可见数
    var maxVisibleItemCount: Int = 3 {
        willSet {
            
            menuH = itemH * CGFloat(newValue)
            self.table.reloadData()
        }
    }
    // item的高度
    var itemH: CGFloat = 40.0 {
        willSet {
            menuH = newValue * CGFloat(maxVisibleItemCount)
            self.table.reloadData()
        }
    }
    // 视图的宽度
    var menuW: CGFloat = 100.0
    // 视图的高度
    private var menuH: CGFloat = 40.0 * 3
    
    // MARK: 视图
    // 背景视图
    var a: CGFloat {
        get {
            return menuH
        }
        set {
            menuH = newValue
        }
    }
   
    
    
    lazy private var bg: UIView = {
        
        let view = UIControl.init(frame: UIScreen.main.bounds)
        view.backgroundColor = UIColor.init(white: 0, alpha: 0.4)
        view.addTarget(self, action: #selector(hideAction), for: .touchUpInside)
        return view
    }()
    // 滑动视图
    lazy private var table: UITableView = {
        
        let table: UITableView = UITableView.init(frame: CGRect.init(x: 0, y: 0, width: self.menuW, height: self.menuH))
        table.delegate = self
        table.dataSource = self;
        return table
    }()
    
    
    
    
    
    // MARK: UITableViewDelegate
    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return items.keys.count
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        
        var cell = tableView.dequeueReusableCell(withIdentifier: "cell")
        if cell == nil {
            cell = UITableViewCell.init(style: .default, reuseIdentifier: "cell")
        }

        let keys = [String](items.keys)
        cell!.textLabel?.text = keys[indexPath.row]
        return cell!
    }
    
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return itemH
    }
    
    // MARK: 点击事件
    @objc func hideAction() {
        
    }
    
    
}
